perm filename NOTICE[UP,DOC]9 blob sn#024271 filedate 1973-02-04 generic text, type T, neo UTF8
00100	*25 Feb 1972	NOTICEs	LES
00200	
00300	This file, kept in  NOTICE[UP,DOC],  is intended  to  function  as  a
00400	computerized  bulletin  board.     System  programmers  and CUSP file
00500	contributors are invited to disseminate  information  concerning  new
00600	programs  and  system  features  by adding notices to this file.  The
00700	format is arbitrary, except that the first line (and only the first
00800	line) should begin with a "*" and should contain three fields in the
00900	form
01000	 *<date><TAB><subject><TAB><programmer initials>
01100	In the date field, the year, month and day may be given in any order
01200	and the year may be abbreviated to 2 digits, but the month must be
01300	given as 3 or more letters.
01400	
01500	*9 Jan 1973	NEWS	LES
01600	To get selective listings from the NOTICE file, say "R  NEWS",  which
01700	will respond with an asterisk and expect a query such as
01800	 *March 15
01900	This asks for all notices posted since the ides of March. If the  day
02000	is  omitted,  1  is  assumed;  if  the  month  is omitted, January is
02100	assumed; if the year is omitted  (as  above)  the  last  instance  is
02200	assumed.
02300	
02400	 *Nov<TAB>SAIL
02500	is an example of a more general kind if query.   This  asks  for  all
02600	notices  since  last  November  1  that  contain  the  string  "SAIL"
02700	somewhere in the subject field, with any  case  differences  ignored.
02800	The search could be made more specific by saying
02900	 *NOV<TAB>SAIL<TAB>DCS
03000	which delivers only such notices written by Dan Swinehart.
03100	
03200	If  the  query begins with a <TAB>, so that the date is omitted, then
03300	all dates will be accepted.   Similarly, the  Subject  field  may  be
03400	omitted. A null query outputs the entire NOTICE file.
03500	
03600	If you would like the output to be spooled, type "*" at  the  end  of
03700	your query, e. g.
03800	 *July 4, 1776	Sex*
03900	If you would like to see title lines only, put a "-" at the end.  You
04000	can use both "*" and "-" together in either order.
04100	
04200	If you forget all this, type "?<return>" and this notice will  appear
04300	magically.
04400	
04500	*1 JAN 1972	DO	RPH
04600	Manual is in DO.RPH[S,DOC].
04700	
04800	*1 JAN 1972	DMAN	REG
04900	Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
05000	
05100	*1 JAN 1972	SPOOLER	REG
05200	See SPOOL.DOC[S,DOC].
05300	
05400	*1 JAN 1972	RSL SL WHAMS BAMS ETC	JHS
05500	Service Level Reservation System -- see RSL[S,DOC]
05600	
05700	
05800	*1 JAN 1972	Keyboard Commands	LES
05900	To get a summary of line editor  and  other  Monitor  commands,  list
06000	KEY.LES[S,DOC).
06100	
06200	*1 FEB 1972	INFO	REM
06300	
06400	To have access to the REM information system, type "RU I[S,REM]".
06500	
06600	*1 Jan 1972	FINGER	LES
06700	
06800	To get a listing of the names of all users currently  logged  in  and
06900	their locations, say "R FINGER".
07000	
07100	*29 Feb 1972	"Sticky PPN's" (RPG, COMPILE)	DCS
07200	
07300	   A PPN specification [P,PN] appearing before a file name in an
07400	RPG command string will be used for all subsequent files which
07500	do not specify a PPN explicitly.  This default remains in effect
07600	until another "sticky PPN" is specified.
07700	   As an example, if I am running under [AIL,DCS]:
07800	
07900	    COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
08000	
08100	would write the output on [AIL,DCS], get HEAD,DB, and PROD from
08200	[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
08300	
08400	*1 Jan 1972	SAIL Statement Counter Profile	RES
08500	
08600	To find out how to get SAIL to give you execution frequency data for
08700	pieces of your program, list NEWMAN[S,AIL].
08800	
08900	*2 Mar 1972	CREF Default Listing Device	DCS
09000	
09100	The CREF default listing device has been changed from LPT to DSK.
09200	This change is not made in RPG mode (so that the CREF system
09300	command will still go directly to LPT).
09400	
09500	*14 Mar 1972	TV "." and <esc>I Features	DCS
09600	
09700	Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
09800	page to become a permanent part of the file (like "W" in SOS).  CANCEL
09900	will henceforth bring back this version, not the old one.
10000	
10100	To interrupt a "FIND" search prematurely, type <esc>I.  This replaces
10200	the "\<crlf>" method.
10300	
10400	*23 Mar 1972	TV for III	DCS
10500	The TV editor (though still officially unsupported) will now run on
10600	both Data-Disk and III.  In fact, you can transfer (by detach/attach)
10700	from one to the other in mid-edit!
10800	
10900	*30 APR 72	SEND	RPH
11000	SEND NOW HAS THE FOLLOWING FORMATS:
11100	
11200	SEND PN		SEND TO ALL PN'S
11300	SEND *		WRITE NOTICE.TXT
11400	SEND *,PN	SAME AS SEND PN
11500	SEND P,*	SEND TO ALL P'S
11600	SEND P,PN	SEND TO SPECIFIC P,PN
11700	SEND *,*	SAME AS SEND *
11800	A PN IS SOME PROGRAMMER NAME
11900	A P IS SOME PROJECT NAME
12000	
12100	*30 APR 72	FAIL	FW
12200	The double arrow character is no longer treated specially
12300	within the comment portion of a line.  When not within a
12400	comment, it is equivalent to a carriage-return, line-feed
12500	pair.  Now, within comments, it prints as itself.
12600	
12700	*3 JUN 1972	RAID	DCS
12800	A new version of RAID is on the system.  Since it is compatible with
12900	both Data-Disc and III consoles, I have put it on SYS: as both 
13000	RAID.REL and TVRAID.REL.  Therefore /V, /1V, /H, /1H will all load
13100	the same program.  Later, TVRAID will be phased out (of LOADER, RPG)
13200	and the numeric argument to H and V switches will be ignored.
13300	This version has been tested fairly carefully.  But report any
13400	problems you have to DCS, anyway.  The old files are saved as
13500	RAID.RLO and TVRAID.RLO on [CSP,SYS].
13600	
13700	The following things have been changed:
13800	__ There are a few display changes; in particular, the arrow
13900	   conventions of the Data-Disc RAID are now used everywhere.
14000	__ Byte mode input will be displayed in byte mode.
14100	__ Conditional breakpoints now work exactly as advertised.
14200	__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
14300	__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
14400	
14500	The following new features have been added:
14600	__ There are three new entries to the dispatch table preceding
14700	   DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
14800	   this table.  The three are:
14900		DDT-12:	→$RPTCNT	See below
15000		DDT-11: →$BGDDT		First word of DDT
15100		DDT-10: →DDTEND		Last word of DDT
15200	
15300	__ This is "Version 1" of RAID.  The version is henceforth stored
15400	   in the leftmost 13 bits of JOBDDT.  Since DDT and old RAID
15500	   contain 0 here, you can tell which you have loaded.  This is for
15600	   the benefit of programs which use new features -- they can
15700	   try alternate methods if the Version isn't high enough.
15800	__ If you insert a JSR $I in your program, you will effectively
15900	   place a breakpoint at that location.  You can proceed via <ctrl>P.
16000	   DO NOT single-step or set a breakpoint on this instruction!
16100	   $I is an INTERNAL symbol in RAID.  There is a pointer to it at
16200	   DDT-6.
16300	__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
16400	   the address specified by JOBOPC.  You can proceed with <ctrl>P.
16500	   Do not expect this to work if you enter DDT before running anything,
16600	   or if your program jumps to DDT (unless it stores a reasonable
16700	   address in JOBOPC first).
16800	__ n<ctrl><meta>S, where n is a number, will execute instructions
16900	   in multi-step mode, as it would if n were absent.  However, no
17000	   change will be made in  the display until:
17100	     1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
17200	     2) RAID must pause to get instructions at a subroutine call.
17300	     3) You interrupt the stepping by typing something, or a
17400		breakpoint is encountered.
17500	   After you respond at a type (2) pause, again the display remains
17600	   unchanged until one of the conditions occurs again.  If you
17700	   responded <ctrl>S or <ctrl>X to the pause, the count will be
17800	   exhausted before the display changes again -- barring type (3)
17900	   events.  The remaining count, if any, is always available in 
18000	    $RPTCNT.   This is useful for counting exact numbers of 
18100	     executions in a given routine, etc.
18200	__ Symbol<meta>K obliterates the Symbol.  Unlike <ctrl>K, which
18300	   simply eliminates typout of the symbol, this also makes it
18400	   undefined for typein.  If, for instance, you have two locations
18500	   with the name NM1, do:
18600		NM2←NM1		Assigns a new name to one of them.
18700		NM1<meta>K	Deletes this symbol completely.
18800		NM1;		Reveals value of the other NM1.  Now
18900				NM2 refers to the first.
19000	__ Macros:
19100	   Address<ctrl>M<letter> defines <ctrl><meta><letter> as
19200	   a macro.  When the macro is invoked, Address (it can be just
19300	   an address or a byte pointer value) will be put in $M-1 (see
19400	   RAID.ON[S,DOC].  This has the effect of evaluating the string
19500	   at Address before evaluating any more keyboard input -- expanding
19600	   the macro.  Be warned that many <ctrl><meta><letter> combinations
19700	   already mean something -- use one you can do without (the macro
19800	   takes precedence).
19900	*4 JUN 1972	NEW DISPLAY EDITOR	SRS
20000	
20100	there now exists a new display editor, called ED, available for
20200	experimentation.  to run it, type
20300	 RU ED[S,SRS]
20400	when it starts up, there will be some documentation on the screen.
20500		ED is presently experimental, and improving.  Features
20600	include:  editing several files at once, splitting screen between
20700	several files or strings, faster than TV in some cases.
20800	
20900	*6 JUN 1972	PUB MANUAL	TES
21000	
21100	A new version of PUB was put up today with some obscure bugs fixed.
21200	Indexes and headings now work well.  AFTER PAGE does not always
21300	work, but AFTER TEXT is usually equivalent and does work.
21400	If you must use old version, please tell me why! To use it, log in
21500	as 12,TES and RUN PUB.
21600	
21700	There is a new manual: SPOOL PUB.TES[S,DOC]/N/B   It is 80 PAGES long, so
21800	if you don't plan to use PUB for a few months, it is advisable to
21900	wait for the SAILON to be printed.  The new manual has an index
22000	and a tutorial for beginners, plus appendices with (untested) examples.
22100	To use PUB for simple purposes, only a portion of the manual needs to be
22200	read.
22300	
22400	*MAR 1972	LOGOUT	REG
22500	Recent changes to logout command.
22600	
22700		The logout command is used to terminate a job that was created
22800	by Login, Fork, or Cfork commands.  The usual form of the command is
22900	K or KJOB, typed at monitor level, followed by a carriage return.
23000	
23100		A new command is called KAT, which combines the features of the
23200	K command and the ATtach command.  KAT requires the job number of the
23300	job to which you want to attach.  As in the Attach command, if you
23400	are attaching to a job with a different PPN than the job you are leaving,
23500	you must supply the ppn of the job to which you are attaching.
23600	
23700		Command Formats
23800		Note that curly backets { and } denote optional
23900	arguments; pointy brackets < and > denote a symbolic item which  should
24000	be replaced by some concrete instantiation of that item.
24100	
24200	K or KJOB command:
24300	
24400	K{JOB}{/<switch list>}
24500	
24600	KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
24700	
24800	Each command line is terminated by a carriage return.
24900	
25000		The item <switch list> consists of any sequence of letters
25100	chosen from the list below:
25200		THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
25300	
25400	For further confusion, consult R. Gorin.
25500	*1969	DDT	WFW
25600	 The following changes have been made to DDT:
25700	
25800	 l.  Halfword printout is now of the form  A,,B  instead
25900	     of  (A)B.  Either form may be used on input.  The difference
26000	     is that  A,,B  truncates  A to 18  bits before 
26100	     swapping halves while  (A)B  does not.
26200	
26300	 2.  $U is a new output mode.  It is the same as $A$H.
26400	 3.  $F mode will now print normalized floating permit
26500	     numbers as decimal integers.  This means that
26600	     FORTRAN users may, in general, use $F to look at
26700	     all variables and they will be printed correctly 
26800	     either fixed or floating.
26900	
27000	 4.  If the address of a string of ASCIZ text is placed
27100	     in $nB+3, then whenever breakpoint  n  is reached,
27200	     DDT will act as if the characters in the string were
27300	     being read from the teletype.  If you are preparing 
27400	     such a string in advance use either  $ or ≠ (≠33 octal)
27500	     for altmode.
27600	
27700	5.   If a  bytepointer to an  asciz  string is placed in
27800	     $M-l, DDT will act as if the characters in the string
27900	     are being read from the teletype.
28000	
28100	 6.  $$7" <delimiter> characters <delimiter> will act just
28200	     like an  asciz   statement in MACRO or FAIL,i.e.,
28300	     more than one word will be filled with  asciz for 
28400	     the characters if necessary.  $$" will have a similar
28500	     effect but with sixbit.
28600	
28700	 7.  Typing <number>$$P will cause DDT to do an automatic
28800	     proceed  <number>  times instead of forever.
28900	
29000	 8.  When printing in  $$  mode, no word will be printed
29100	     out as an I/O instruction (COND, DATAO, CONI, etc.)
29200	     unless the device number is in a special table.  The
29300	     table is  10  words long and is in $I-1, $I-2, etc.
29400	     Simply put device number here to have the appropriate I/O
29500	     instructions printed.
29600	
29700	 9.  If an address is placed in  $M-2  then for each character
29800	     DDT wishes to output, a pushj 1,@$M-2 will be executed. 
29900	     This allows output to be redirected to some device 
30000	     other than the TTY.  The character is in register 5.  The
30100	     routine should preserve all AC's and end with a POPJ l,.
30200	
30300	10.  In byte mode output ($<number>0), if a size of 0
30400	     is specified, DDT will use a special mark in $M+2.
30500	     The boundry between 1 and 0 bits specifies the size
30600	     of the bytes.  For example, a word containing
30700	
30800			11111111111 00000000000 11100010110001
30900	
31000	     would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
31100	     bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
31200	
31300	11.  Bytes may be input of $<number>%.  This should be
31400	     followed by a string of unsigned octal numbers
31500	     separated by common and terminated by an altmode.  The 
31600	     number of bytes in a word is not integal the last
31700	     byte is treated as if the word were larger 
31800	     (bit number greater than 35).  This makes input compatible
31900	     with output.  A size of  O  uses the mark in $M+2
32000	     as above.
32100	
32200	12.  It is now possible to print flag words and  T  type
32300	     instruction (TRUN, TLNN, etc.) with suitable names
32400	     for the bit involved.  In $M+3 a pointer of the following
32500	     form is placed:
32600	
32700					_______
32800					|            |
32900	    _______      	|             |
33000	$M+3 |  L1 | T0  |		| Table 0    | 
33100					|            |
33200					_______
33300		
33400					
33500					_______
33600					|            |
33700					| Table 1    |
33800					|            |
33900					_______
34000	
34100					_______
34200					|	     |                
34300					| Table 2    |
34400					|	     |                
34500					_______
34600	     As many tables as desired may be included.  The pointer
34700	     to the last table should have 0 in the left half. Each
34800	     table contains 36 words.  The  nth  word contains the
34900	     RADIX50 for the name of bit n.  $<number>J  mode will
35000	     cause a word to be printed out using the bit names in
35100	     table number.  If an entry for a bit in 0, the numeric
35200	     value will be printed.  A typical word might look like
35300	
35400	              foo! baz! 123,, fool! garp! 2
35500	
35600	     $J means $0J.  $nL causes the left half to be
35700	     printed in symbolic and the right half to be printed in
35800		↑STODAT:
35900	     bit mode, using the names of the bits as if they appeared
36000	     in the left half. $<number>V prints the left half in symbolic
36100	     and the right half in bit mode.
36200	
36300	13.  You can now transfer to what is pointed to by the left half
36400	     of a word in the same manner as you transfer using <tab>.
36500	     The command is <control>].
36600	
36700	*FEB 1972	NEW WHO	DCS
36800	As of 12-9-71:
36900	
37000	1. WHO  will  run for about two minutes, then quit.  You can  reset
37100	   this time by issuing commands (see below).
37200	
37300	2. Typing <call> does not stop spacewar jobs.  However, after about
37400	   6 seconds of operation after a <call>, the spacewar portion of
37500	   WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777).  This will
37600	   be made cleaner if the system types give me some help.
37700	
37800	3. WHO commands are now single-character commands.  WHO will not wait
37900	   for a carriage return before executing one.
38000	
38100	4. Previously, many lines of the WHO page were lost below the bottom
38200	  of the screen.  WHO now provides a "windowing" feature.   Type  "↑"
38300	  to  move  the  text  up,  so  that the line which did appear at the
38400	  center of the screen now appears at the top.  This reveals  several
38500	  new  lines  at  the  bottom.  A digit preceding the "↑" serves as a
38600	  repeat factor.
38700	 
38800	5. The "↓" command, with optional repeat factor, moves the text down
38900	   by a half-screenful, unless the first line already is displayed.
39000	
39100	6. The "E" command causes WHO to quit.  However, the last-drawn screen
39200	   will not be cleared.  So you can look at it.
39300	
39400	7. Any other character will cause WHO to clear the screen (revealing
39500	   your old page printer), then quit.
39600	*14 June 1972	VIDEO SWITCH DOCUMENTATION	LES
39700	A  SAILON  describing  the   video   switch   hardware   resides   in
39800	VDS.LES[S,DOC].  A description of keyboard commands and monitor calls
39900	for controlling the switch and DD channel allocation are described in
40000	VIDEO.LES[UP,DOC].  To  get  a  summary of the keyboard commands, say
40100	"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
40200	
40300	*7 July 1972	DOCUMENTATION FILES	LES
40400	Online documentation files are divided into several areas, as follows.
40500		[P,DOC] contains the compiled version of the lab phone
40600			directory and other lists of people.
40700		[UP,DOC] contains user program descriptions (informal).
40800		[S,DOC] contains SAILONs, which are more formal descriptions
40900			of programs and hardware.
41000		[AIM,DOC] contains A. I. Memos, which report research results.
41100		[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
41200	
41300	*23 JULY 1972	KLOG	RHT
41400	The KLOG command allows you to switch areas in one line.  Semantically
41500	it is LOGOUT, followed by LOGIN.  The syntax is:
41600	
41700	KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
41800	
41900	examples 
42000	
42100	KLOG 1/RHT
42200	
42300	KL/F 1|RHT
42400	
42500	KL 
42600	1,RHT
42700	
42800	*24 Jul 1972	SAIL	DCS,RHT,JRL
42900	LEAP news
43000	
43100		1. In the past global model users of LEAP were required
43200		   to have the statement:
43300			
43400			REQUIRE -1 NEW_ITEMS;
43500			
43600		   in order to inhibit the allocation of various tables
43700		   for the local leap model. This statement is no longer
43800		   required. Instead the decision to allocate the tables
43900		   will be made using the following criteria. The local model
44000		   tables will be allocated only if any of the programs loaded
44100		   together to form a single job contain any declared local
44200		   items ( that is, any items declared without the attribute
44300		   GLOBAL), or any of the programs contain  the statement:
44400			
44500			REQUIRE n NEW_ITEMS;
44600	
44700	       	   where "n" is greater that 0.
44800		   NOTE: this means that all users of local model LEAP must now
44900		   "require" new_items if they are going to dynamically create
45000		   non-global items by using the function NEW.(previously an
45100		   implicit REQUIRE 60 NEW_ITEMS was contained in every program).
45200	
45300	
45400		2. LEAP tables are now allocated as part of the SAIL initialization
45500		   code rather than on the first call to any LEAP subroutine.
45600		   The tables will be allocated if any of the SAIL programs
45700		   loaded contain declared items, itemvars, sets, lists or calls
45800		   to LEAP. This change was made so that datums of items could
45900		   be utilized before the first call to LEAP.
46000	
46100		3. The type codes for items have been altered. The new codes
46200		   returned by the TYPEIT function are as follows:
46300	
46400				0 - item deleted or never allocated
46500				1 - no type (no datum for this item)
46600				2 - item is bracketed triple
46700				3 - string
46800				4 - real
46900				5 - integer
47000				6 - set
47100				7 - list
47200				8 - procedure
47300			       16 - string array
47400			       17 - real array
47500	                       18 - integer array
47600			       19 - set array
47700			       20 - list array
47800			       21 - invalid (runtime has screwed something up)
47900	 	   The very astute user will notice that the only changes are to
48000		   up the codes for arrays and invalid by 5.
48100	
48200		IMPORTANT NOTE:This unfortunately will necesitate the recompilation
48300		and reloading of any programs which use array items as the RUNTIME 
48400		routines also use these type codes.The standard
48500		compiler  SAIL on [1,3] will have these changes as of 23:59 WED,
48600		jul26. Therefore if any of your programs use array items you should
48700		recompile them starting Thurs jul 27. Foist all complaints onto
48800		Jim Low.
48900	
49000	
49100	*25 Jul 1972	SPOOLER	REG
49200	SPOOLER NEWS:
49300		The old spooler '*LIST*' has been removed  from  the  system.
49400	Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
49500	have to reload with the new libraray.
49600	
49700		The command SPOOLQ has been removed. Instead, use the command
49800	QSPOOL.   This  has the advantage that the command can be abbreviated
49900	to one letter and the SPOOL command to two letters.
50000	
50100		A new SPOOL command is planned. This will allow users to more
50200	fully utilize features of the new spooler.
50300	
50400	*1 Aug 1972	FORTRAN	REG
50500	DEC FORTRAN version 25 and LIB40 version 31 have been put up.
50600	Some of the bugs in the compiler / operating system have been
50700	eliminated.
50800	
50900	*9 Aug 1972	DATA DISK	FW
51000	Two new features have been added to data disk DPYOUT:
51100	
51200	1) Overlapped mode, enabled by bit 0 of header word 0.
51300	   In this mode, a DPYOUT will return without waiting for
51400	   the transfer to be completed (although it will wait
51500	   for any previou transfer), enabling the program to
51600	   continue running. Header+2 will be set nonzero during
51700	   the transfer, and to zero after the transfer is complete,
51800	   so testing this is convenient (which should be done before
51900	   changing the buffer). A DPYOUT with a zero word count will
52000	   wait for a previous transfer without initiating a new one.
52100	
52200	2) Double field mode, useful for text output. This is enabled
52300	   by bit 1 of header word 0 and will cause the buffer to be
52400	   transferred twice, once on each field. Header+3 should specify
52500	   the address of the line address command word, which should
52600	   contain the low-order line address as the third command in
52700	   the word. Bit 24 of this word will be set to the proper
52800	   field on each transfer. This feature cannot be used if more
52900	   than one low-order line address command is used.
53000	
53100	*16 Aug 1972	AP NEWS (APE, HOT)	ME
53200	
53300	We have a line from the Associated  Press  (AP)  over  which  we  get
53400	national  and  international news.  The news that comes in gets filed
53500	on the disk and saved for about 24 hours.
53600	
53700	For use in reading the news, there are two programs on the system.
53800	
53900	Type "R HOT" to have the news typed on your console as it comes in.
54000	
54100	Type "R APE" to be able to selectively read the news that is on file.
54200	The  stories  are catagorized by keywords; to read the news, you type
54300	to APE whatever keywords you want to read about.  To  get  help  when
54400	you are running APE, type "?" and carriage return at any point. For a
54500	list of the keywords, TYPE the file WORDS.SRT[AP,SYS]  or  SPOOL  the
54600	file WORDS.LST[AP,SYS].
54700	
54800	For further information, see the file APE.ME[UP,DOC].
54900	
55000	
55100	*16 AUG 1972	SAIL MATRIX ROUTINES PACKAGE	SHK
55200	
55300	Following Matrix Routines Now Available:
55400	
55500	1) Real Matrix Multiplication Routine
55600		Multiplies two n-dimensional matrices (2-dimensional arrays)
55700		(size  m x n by n x p  to get a  m x p  matrix)
55800		or multiplies a 1-dimensional matrix by an n-dimensional matrix
55900		or an n-dimensional matrix by a 1-dimensional.
56000	MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
56100		multiplies A by B and places the result in C
56200		(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
56300		The only thing it won't do (I think) is multiply two 1-dimensional
56400		matrices or n-dimensional arrays (n>2).
56500	
56600	2) Array Clear Routine
56700		MATCLR(REAL (or INTEGER) ARRAY A);
56800		Zeros the array A.
56900	
57000	3) Real Array Multiplied by a Real Constant
57100		CONMUL(REAL ARRAY A,REAL B);
57200		Multiplies array A by constant B and places the result in A.
57300	
57400	All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
57500	
57600	
57700	*30 Aug 1972	UUO	SHK
57800	There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
57900	
58000	*4 Sept 1972	AP NEWS (APE, HOT)	ME
58100	 The AP news is now spooled once a day (at a somewhat random
58200	 time).  The listing, which will be kept in the conference
58300	 room, will indicate a file name of "APNEWS[AP,SYS]".
58400	
58500	*4 SEP 1972  FILDMP	RPH
58600	New program to list files in different formats. See FILDMP.RPH on UP,DOC.
58700	
58800	*4 SEP 1972  NEW SAIL	RHT
58900	 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM  WILL  BE  UP.  ITS
59000	 SEGMENT  WILL  BE  SAISG4.  THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
59100	 FEATURES, INCLUDING USER REQUESTED  INITIALIZATIONS,  A  LOCATION(X)
59200	 FUNCTION,  AN  IMPLICIT  ARRAY:  MEMORY[0:MEMSIZE], THE RUDIMENTS OF
59300	 MULTIPLE PROCESSES, AND  MUCH  MORE.   WE  WILL  TRY  TO  HAVE  SOME
59400	 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
59500	*22 SEP 1972	NEW SAIL	RHT,JRL,KVL
59600	 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
59700	 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
59800	 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
59900	
60000	 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
60100	 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
60200	 NEWFEA.TXT[S,JRL].
60300	
60400	 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
60500	 MODEL HACKERS GLBS10. 
60600	
60700	 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
60800	 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
60900	 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
61000	 ARE RELOADED.
61100	
61200	
61300	 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
61400	 SAISG3 IS DELETED.
61500	
61600	 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
61700	 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
61800	 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
61900	 PROGRAM WITHOUT UNREADABLE MACROS.
62000	
62100	 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
62200	 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
62300	 GLBLOW.REL AS GLBLOW.921.  IF YOU FEEL YOU ARE BEING
62400	 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
62500	 SAY SOMETHING LIKE
62600	 
62700	 R SAIL.921 <CR>
62800	 * FOO←FOO <CR>
62900	 * LOADER!
63000	 * SAILOW.921[1,3],FOO <ALT>
63100	 
63200	 WHERE THE STARS ARE TYPED BY THE SYSTEM
63300	 
63400	 THIS WILL GIVE YOU THE EFFECT OF DOING 
63500	 
63600	 LOA /COM FOO
63700	 
63800	 USING THE PREVIOUS SYSTEM.  
63900	
64000	*22 Sept 1972	Upper Segment RAID and DDT	TVR
64100	RAID or DDT may be retrieved from the disk  and  run  from  an  upper
64200	segment.  This means your core image may contain RAID at a much lower
64300	cost (102 octal words instead of 12200 words for RAID).  For  details
64400	see DEBUG.DOC[1,TVR]
64500	
64600	*22 Sept 1972	AP NEWS (APE)	ME
64700	Multiple word keywords are now implemented in APE.  To use them,
64800	separate the individual words with spaces in your keyword exressions.
64900	
65000	Also, to have only the first few lines of each story you select
65100	typed out, type an "F" at the beginning of the story selection
65200	line ("Read which one(s)?").  If you use both "F" and "=" on
65300	the same line, the order is irrelevant.  When you use the "F"
65400	feature, you cannot spool or save the stories in a file.
65500	
65600	For details on using APE, see the file APE.ME[UP,DOC].
65700	
65800	*12 Oct 1972	FAIL	TVR
65900	FAIL has been changed to stop at each error and give  the  option  to
66000	continue  to next error, continue automatically or to edit.  The edit
66100	
66200	option will call SOS if there are line numbers and TVED if not.   Any
66300	complaints  should be sent to TVR.  If you don't want to stop at each
66400	error, give FAIL the switch (F).  The old version is FAIL.OLD[1,3].
66500	*21 Oct 1972	SAIL	JRL,RHT,KVL
66600	A new SAIL compiler has been put up to correct bugs reported in the
66700	last few weeks. There should be no incompatibitlies with the preceding
66800	compiler and programs compiled with the previous compiler should
66900	be runable with programs compiled with the new compiler. Thus, there
67000	is no need to recompile or even reload SAIL programs which have
67100	been compiled since SEPT 21.  If you do have a program which
67200	compiled in the last month but doesn't now:
67300		1. REPORT THE PROBLEM TO A SAIL HACKER - or send
67400		   a message to AIL, including such details as
67500		   where a copy of the offending program is and the
67600		   nature of the SAIL bug.
67700	        2. You may use the previous compiler by
67800		   R  SAIL.102
67900	           * FOO←FOO
68000	           * <call>
68100	           where  FOO is the name of your sail program and  <call>
68200		   represents the typing of the CALL button (the stars are
68300		   typed by the system). The above sequence is equivalent to
68400		   the system level command:
68500	
68600			COM /COM FOO
68700	
68800	A note to users of multiple processes and matching procedures:
68900		To initialize the multiple process environment the user
69000	        should include the following declaration:
69100	
69200		   EXTERNAL PROCEDURE MAINPR;
69300	
69400		He should also make sure this procedure is called before
69500	        doing any process sprouting or matching procedure calling.
69600		This is best done by using the REQUIRE INITIALIZATION feature
69700	        or by making:
69800		   MAINPR;
69900	        The first executable statement of your program.
70000	This initialization will be compiled in, in the near future but until
70100	then the above hack is required.
70200	*3 Nov 1972	USER INTERRUPTS	FW
70300	The PC stored on a memory protect interrupt via the new-style
70400	user interrupt system is now the exact PC stored by the hardware,
70500	rather than being incremented as it used to be. This is consistent
70600	both with the old-style (DEC) user interrupt system and with the
70700	"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
70800	the exact value of this PC, consult me or the PDP-10 flowcharts,
70900	as it is anything but consistent.
71000	*3 Nov 1972	VIDEO SWITCH	FW
71100	The VDSMAP UUO now allows the 6 extra switch channels to be
71200	addressed by setting bit 9 in the AC and putting the channel number
71300	(0-5) in the TTY# field (11-17).
71400	
71500	*8 Nov 1972	DUMPS	REG
71600	DART, a new program to back up disk  files  on  tapes,  is  available.
71700	system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
71800	run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
71900	See DART.REG[UP,DOC].
72000	
72100	*8 Nov 1972	PROTECTION	REG
72200	The  file  access  protection  bit  400,  which   formerly   had   no
72300	signifigance,  now  means  'Dump  Never' in DART.  All files that had
72400	used this bit have been renamed without it.
72500	
72600	*11 Nov 1972	SYSTEM	REG
72700	The job table JOBQUE in the system now contains either the positive 
72800	or negative value of the queue code of a job. Formerly, it had
72900	always been negative.
73000	
73100	*26 Nov 1972	FTP	DCS
73200	A new FTP has been installed with the following features:
73300	
73400	 1) You needn't type the MODE, TYPE, or BYTE commands at all
73500	    unless you want to change the defaults of S, I, and 36 resp.
73600	    Changing them is inadvisable since we only support those
73700	    settings.  The defaults will be to the foreign host just
73800	    before the first data transfer.
73900	
74000	 2) RSTR clears any DATA connections that the FTP thinks it has
74100	    open.  Sometimes it's wrong.  If you get an indication from
74200	    FTP that a command is illegal because the DATA connection already
74300	    exists, do this command.  It will go away when hacks in FTP
74400	    have been cured.
74500	
74600	 3) QUOT sends the rest of the line directly over the net, so you
74700	    can use it to execute other peoples commands which are either
74800	    nonstandard or just unsupported here.  This won't do any good
74900	    if our end has to be involved in the operation, but it is good
75000	    to do things like STAT (status), and HELP at CMU.
75100	 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
75200	 and NIC document 10596 for complete FTP protocol description.
75300	
75400	*26 Nov 1972	MLISP2	DAV
75500	A new version of MLISP2 has been put on the system.  An old version
75600	exists and will be around for one week.  The main motivation for
75700	the changes was to fix several serious bugs,
75800	and to clean the language up prior to publishing a manual.
75900	Changes:
76000		(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
76100		(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
76200		(3) SPECIAL variables now must be declared at translation (PARSE)
76300			time.  To facilitate this, a new production has been added,
76400			having the form:	SPECIAL <identifier_list>
76500			It is strongly suggested that all SPECIAL variables be
76600			declared at the top of the program using this production.
76700		(4) ?# in the syntax (to inhibit scanning) should now be just #.
76800			It no longer takes up a syntax position.
76900		(5) Setting variables in backtracking contexts is now done with
77000			real LISP numbers (formerly machine representation).
77100			A function CONTEXT() gets the current backtracking
77200			context.  X{CONTEXT()/10 + 3} ← etc. is now legal.
77300		(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
77400		(*) Prefixes are more restricted in use; the syntax is
77500			<PREFIX>  <SIMPEX>  as always, but IF, FOR, CASE, etc.
77600			are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
77700			Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
77800			use  RETURN(IF ..., PRINT(CASE ..., etc.
77900		(7) The syntax of SELECT has been changed.  Use SUCCESSOR instead
78000			of NEXT, and FINALLY instead of IN WHICH CASE.
78100			E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
78200				UNLESS NULL(L) FINALLY FAILURE()
78300		(8) MLISP2.PRI now prints as it goes along, instead of at the end.
78400	
78500	*3 Dec 1972	SAIL	RHT
78600	A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
78700	This system will include 
78800		(1) Leap revisions by JRL.  This means that any programs
78900			that use LEAP should be recompiled.
79000		(2) User required initializations will take place as
79100			the first executable statement of the main
79200			program (after outer block arrays have been
79300			initialized). Programs that are loaded
79400			with any .REL files which have user initializations
79500			should have their main programs recompiled.
79600		(3) Hooks into the user interrupt system have been provided.
79700			Those interested should see Russ Taylor.
79800		(4) A new kind of declaration has been provided:
79900			CLEANUP proc1,proc2,proc3;
80000		    Where proc1, etc. are names of (parameterless)
80100		    procedures.  The effect of a CLEANUP declaration 
80200		    is to cause the named procedures to be called
80300		    whenever the block in which it occurs is exited,
80400		    whether by falling through the end, doing a go_to,
80500		    or by any other means.  These procedures will be
80600		    called before any local arrays, sets, or lists are
80700		    released.  The calls will take place in the order
80800	 	    specified.  Thus:
80900	
81000			BEGIN
81100			INTEGER I;
81200			PROCEDURE FOO;I←1;
81300			BEGIN
81400			INTEGER ARRAY X[0:I];
81500			PROCEDURE BAZ;OUTSTR(CVS(X[I]);
81600			CLEANUP FOO,BAZ;
81700			:
81800			COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
81900				BE PRINTED OUT;
82000	
82100			:
82200			END;
82300			END;
82400	
82500		(5) various minor modifications to the process stuff.
82600	
82700	The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
82800	& HLBSA5.REL.  
82900	
83000	The old compiler will be SAIL.D07[1,3]
83100	
83200	*12 Dec 72	AP NEWS (APE)	ME
83300	There is now a full search feature in APE.  If you  type  in  a  word
83400	that  is  not in the keyword dictionary, APE will tell you so and ask
83500	you if you wish a "Full search?".  If you type Y, the news file  will
83600	be  searched  for the specified keyword.  If you type ?, a (complete)
83700	summary of this feature will be typed out (try  it!).   If  you  type
83800	anything else, no search will be done.  You may interrupt a search in
83900	progress by typing any character.  (That means you may not type ahead
84000	during a search.)
84100	
84200	Note:   Every  word not in the dictionary causes a separate search to
84300	take place and will require you to say Y to "Full search?".
84400	
84500	Special note:  Normally the whole news file is searched, taking 8  to
84600	10   seconds,  but  if  a  non-keyword  is  the  second  part  of  an
84700	intersection (eg, NIXON * JJ), then only the  necessary  stories  are
84800	searched.
84900	
85000	*12 DEC 72	PUB	TES
85100	PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
85200	The old version is PUBMAC.OLD[1,3] for a few weeks.
85300	
85400	The PUB manual has been deleted from the disk.  The abstract remains
85500	on PUB.TES[S,DOC].  Bound copies are in the SAILON file drawer.
85600	
85700	In January, a new-SAIL PUB should be up with several obscure but
85800	annoying bugs removed.  Major restrictions and bugs now known:
85900		SEND INDEX ⊂ ... ⊃	must be all on one line
86000		See {PAGE X}		must be followed by a non-word-break
86100						such as  ) , ; ] .
86200						but definitely not a SPACE
86300		NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
86400		TURN OFF "}" inside blocks doesn't always work right (just for "}")
86500		↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
86600		Footnotes hack a lot, esp. if the page fills up during one.
86700	
86800	*23 Jan 73	AP NEWS (APE)	ME
86900	A new version of APE has  been  put  on  the  system.   The  new  APE
86925	includes several changes to input formats, particularly where file or
86950	spooler output is desired.  The file APE.ME[UP,DOC] has been  updated
86975	to  explain  all  the  new  features in detail.  You should read that
87000	file,  especially  pages  4  to  12,  before  trying  to   run   APE.
87025	Alternatively,  you can type a question mark (and carriage return) to
87050	APE at any time to get help.  Here are some of the main changes.
87075	
87100	All input lines  must  now  be  ended  with  carriage  returns  (this
87125	includes the "Y" to cause a search).
87150	
87175	Input to APE from a command file is now possible (and easy/fun).  The
87200	command file should have the name APE.CMD to be most convenient,  but
87225	any  file name is legal as is (almost) any text file format (SOS, TV,
87250	E, etc.).
87275	
87300	A "CHOOSE" feature has been added to allow you to see  the  beginning
87325	of  each  story  and  then  decide if you want to see the rest of the
87350	story.
87375	
88800	To get output to a file, you say
88900		<filename> ←
89000	followed by the usual story selection specification.
89100	
89200	To get output to the spooler, you add an "S" to the selection line.
89225	
89250	To avoid having stories typed out, for instance when they  are  being
89275	spooled, add a "D" (meaning Dont type 'em) to the selection line.
89300	
89310	[ESC] I will interrupt searches as well as typeouts now.
89320	
89325	A  couple  of  features  are written up in the documentation although
89350	they are not yet implemented.  (The writeups do say  of  course  that
89375	these features  are  unimplemented.)  The features are:  1) AUTOMATIC
89400	NOTIFICATION, whereby you can be notified whenever a story  comes  in
89425	that  matches a keyword expression you have specified; and 2) typeout
89450	of the keywords  by  which  a  story  has  been  categorized.   These
89475	features  are  written  up  in  the  hope  that  you  will  read  the
89500	descriptions now and will  understand  the  features  when  they  are
89525	implemented.
89530	
89555	*28 Jan 73	SAIL	JRL
89580	
89605	The item NIC returnedby INTERROGATE when the notice queue is empty,
89630	is now the same as the item UNBOUND used in ? FOREACHES and
89655	matching procedures.
89680		i.e.
89705			(NIC=UNBOUND) is TRUE
89730	
89755	UNBOUND has a new name BINDIT since we felt the name UNBOUND had
89780	erroneous connotations.
89805	
89830	Both NIC and UNBOUND will be allowed for a while, but you should
89855	replace them with BINDIT in your source-files.
89880	
89905	Because of these changes programs using NIC, UNBOUND should be
89930	recompiled.
89955	
89980	ANY is now an item (though it can't be used in MAKE statements).
90005	
90030	So you may now say:
90055			ITMVR ← ANY;
90080			ERASE A⊗B≡ ITMVR;
90105	which will have the same effect as 
90130			ERASE A⊗B≡ANY;
90155	ANY may be an element of a set or list.
90180	All itemvars are originally initialized to ANY.
90280	
90380	*1 Feb 73	AP NEWS (APE)	ME
90480	The keyword listing feature has now been implemented.  Add a  "W"  to
90580	the selection line to have the keywords of each story typed out ahead
90680	of the story.
90780